package licenseKeyFormatting;

import java.util.ArrayList;
import java.util.List;
class Solution {
    public String licenseKeyFormatting(String s, int k) {
        List<Character> characters = new ArrayList<>();
        for (int i = 0; i < s.length(); i++) {
            if(s.charAt(i)!='-') {
                characters.add(s.charAt(i));
            }
        }
        if(characters.size()==0)return "";
        int first = characters.size()%k==0?k:characters.size()%k;
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < first; i++) {
            sb.append(reverse(characters.get(i)));
        }
        for (int i = first; i < characters.size(); i++) {
            // 在哪些地方需要加"-"
            if((i-first)%k==0){
                sb.append('-');
            }
            sb.append(reverse(characters.get(i)));
        }
        return sb.toString();
    }
    private char reverse(char c) {
        if('a'<=c&&c<='z')return(char)(c-('a'-'A'));// a-A
        return c;
    }
}
//class Solution {
//    public String licenseKeyFormatting(String s, int k) {
//        StringBuilder ans = new StringBuilder();
//        int cnt = 0;
//
//        for (int i = s.length() - 1; i >= 0; i--) {
//            if (s.charAt(i) != '-') {
//                cnt++;
//                ans.append(Character.toUpperCase(s.charAt(i)));
//                if (cnt % k == 0) {
//                    ans.append("-");
//                }
//            }
//        }
//        if (ans.length() > 0 && ans.charAt(ans.length() - 1) == '-') {
//            ans.deleteCharAt(ans.length() - 1);
//        }
//
//        return ans.reverse().toString();
//    }
//}

